Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
amazon-cognito-auth-js
Advanced tools
You can now use Amazon Cognito Auth to easily add sign-in and sign-out to your mobile and web apps. Your user pool in Amazon Cognito is a fully managed user directory that can scale to hundreds of millions of users, so you don't have to worry about building, securing, and scaling a solution to handle user management and authentication.
We welcome developer feedback on this project. You can reach us by creating an issue on the GitHub repository or posting to the Amazon Cognito Identity forums:
The Amazon Cognito Auth SDK for JavaScript simplifies adding sign-up, sign-in with user profile functionality to web apps.
Instead of implementing a UI for sign-up and sign-in, this SDK provides the UI via a hosted page. It supports sign-up, sign-in, confirmation, multifactor authentication, and sign-out.
There are two ways to install the Amazon Cognito Auth SDK for JavaScript and its dependencies, depending on your project setup and experience with modern JavaScript build tools:
Download the JavaScript libraries and include them in your HTML, or
Install the dependencies with npm and use a bundler like webpack.
This method is simpler and does not require additional tools, but may have worse performance due to the browser having to download multiple files.
Download the following JavaScript file for the required library and place it in your project:
/dist/amazon-cognito-auth.min.js
Optionally, to use other AWS services, include a build of the AWS SDK for JavaScript
.
Include all of the files in your HTML page before calling any Amazon Cognito Auth SDK APIs:
<script src="/path/to/amazon-cognito-auth.min.js"></script>
<!-- optional: only if you use other AWS services -->
<script src="/path/to/aws-sdk-2.6.10.js"></script>
The following is a quick setup guide with specific notes for using the Amazon Cognito Auth SDK for JavaScript with Webpack, but there are many more ways it can be used. See the Webpack site, and in particular the configuration documentation
Note that webpack expects your source files to be structured as CommonJS (Node.js-style) modules (or ECMAScript 2015 modules if you are using a transpiler such as Babel.) If your project is not already using modules you may wish to use Webpack's module shimming features to ease migration.
package.json
, either use npm init
or the minimal, which means your repository is private:{
"private" : true
}
npm
(the Node Package Manager, which is installed with Node.js):> npm install --save-dev webpack json-loader
> npm install --save amazon-cognito-auth-js
webpack
, named webpack.config.js
:module.exports = {
// Example setup for your project:
// The entry module that requires or imports the rest of your project.
// Must start with `./`!
entry: './src/entry',
// Place output files in `./dist/my-app.js`
output: {
path: 'dist',
filename: 'my-app.js'
},
module: {
loaders: [
{
test: /\.json$/,
loader: 'json'
}
]
}
};
package.json
{
"scripts": {
"build": "webpack"
}
}
npm run build
The Amazon Cognito Auth SDK for JavaScript requires three configuration values from your AWS Account in order to access your Cognito User Pool:
<TODO: add ClientId>
<TODO: add App Web Domain>
Domain name
tab, you can create a domain name there and save it for record.['<TODO: your scope array here, try "phone", "email", ...>'],
e.g.['phone', 'email', 'profile','openid', 'aws.cognito.signin.user.admin']
(to get more info about scope, please reference "scope" section of our doc)
App settings
tab, you can select the identity provider which you want to use on your App.sign in and sign out URLs
tab, you can set the Callback URLs
and Sign out URLs
. (both are required)OAuth2.0
tab, you can select the OAuth flows and scopes enabled for this app. (both are required)Facebook
<TODO: add UserPoolId>
The AWS Console for Cognito User Pools can be used to get or create these values.
Note that the various errors returned by the service are valid JSON so one can access the different exception types (err.code) and status codes (err.statusCode).
The usage examples below use the unqualified names for types in the Amazon Cognito Auth SDK for JavaScript. Remember to import or qualify access to any of these types:
// When using loose Javascript files:
var CognitoAuth = AmazonCognitoIdentity.CognitoAuth;
// Modules, e.g. Webpack:
var AmazonCognitoIdentity = require('amazon-cognito-auth-js');
var CognitoAuth = AmazonCognitoIdentity.CognitoAuth;
// ES Modules, e.g. transpiling with Babel
import {CognitoAuth} from 'amazon-cognito-auth-js';
Use case 1. Registering an auth with the application. You need to create a CognitoAuth object by providing a App client ID, a App web domain, a scope array, a sign-in redirect URL, and a sign-out redirect URL: (Identity Provider, UserPoolId and AdvancedSecurityDataCollectionFlag are optional values)
/*
TokenScopesArray
Valid values are found under:
AWS Console -> User Pools -> <Your user pool> -> App Integration -> App client settings
Example values: ['profile', 'email', 'openid', 'aws.cognito.signin.user.admin', 'phone']
RedirectUriSignOut
This value must match the value specified under:
AWS Console -> User Pools -> <Your user pool> -> App Integration -> App client settings -> Sign out URL(s)
*/
var authData = {
ClientId : '<TODO: add ClientId>', // Your client id here
AppWebDomain : '<TODO: add App Web Domain>',
TokenScopesArray : ['<TODO: add scope array>'], // e.g.['phone', 'email', 'profile','openid', 'aws.cognito.signin.user.admin'],
RedirectUriSignIn : '<TODO: add redirect url when signed in>',
RedirectUriSignOut : '<TODO: add redirect url when signed out>',
IdentityProvider : '<TODO: add identity provider you want to specify>', // e.g. 'Facebook',
UserPoolId : '<TODO: add UserPoolId>', // Your user pool id here
AdvancedSecurityDataCollectionFlag : '<TODO: boolean value indicating whether you want to enable advanced security data collection>', // e.g. true
Storage: '<TODO the storage object>' // OPTIONAL e.g. new CookieStorage(), to use the specified storage provided
};
var auth = new AmazonCognitoIdentity.CognitoAuth(authData);
Also you can provide onSuccess callback and onFailure callback:
auth.userhandler = {
onSuccess: function(result) {
alert("Sign in success");
showSignedIn(result);
},
onFailure: function(err) {
alert("Error!");
}
};
You can also set state
parameter:
auth.setState(<state parameter>);
Use case 2. Sign-in using getSession()
API:
auth.getSession();
For the cache tokens and scopes, use the parseCognitoWebResponse(Response)
API, e.g. the response is the current window url:
var curUrl = window.location.href;
auth.parseCognitoWebResponse(curUrl);
Typically, you can put this part of logic in the onLoad()
, e.g.:
function onLoad() {
var auth = initCognitoSDK();
var curUrl = window.location.href;
auth.parseCognitoWebResponse(curUrl);
}
Use case 3. Sign-out using signOut()
:
auth.signOut();
Important to know
By default, the SDK uses implicit flow(token flow), if you want to enable authorization code grant flow, you need to call useCodeGrantFlow(). For example, please check our sample index.html, in that file, you need to uncomment "auth.useCodeGrantFlow()".
Also, when you meet some problems using our SDK, please make sure you downloaded the lastest version directly from Github repo.
v1.3.3
v1.3.2
v1.3.1
v1.3.0
v1.2.4
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.1.9
v1.1.8
parseCognitoWebResponse()
onFailure() callback to make sure sample APP works correctly.v1.1.7
v1.1.6
v1.1.5
parseCognitoWebResponse()
onFailure() callback and fixed the CognitoAuth.getCurrentUser()
returning undefined
when using implicit grant flow.v1.1.4
CognitoIdentityServiceProvider
service from the AWS SDK for JavaScript.v1.1.3
es
folder.v1.1.2
isUserSignedIn()
API method and support for developers to set state parameter. Also uploaded lib
folder.v1.1.1
v1.1.0
v1.0.1
v1.0.0
v0.9.0:
FAQs
Amazon Cognito Auth JavaScript SDK
The npm package amazon-cognito-auth-js receives a total of 2,359 weekly downloads. As such, amazon-cognito-auth-js popularity was classified as popular.
We found that amazon-cognito-auth-js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 11 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.